Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add association matrix learning rule (AML). #72

Merged
merged 1 commit into from May 24, 2018
Merged

Add association matrix learning rule (AML). #72

merged 1 commit into from May 24, 2018

Conversation

jgosmann
Copy link
Contributor

Adds the association matrix learning rule (AML). This learning rule allows to learn associations from cue vectors to target vectors in a one-shot fashion without catastrophic forgetting. An implementation is provided for the reference simulator and Nengo OCL. As far as I can tell, Nengo OCL does not provide a possibility to register custom plan_* functions. Thus, the OCL implementation adds a new AmlSimulator class inheriting nengo_ocl.Simulator.

I added a test. To run it with the OCL implemenation:

pytest nengo_extras/tests/test_learning_rules.py -k aml --plots --simulator nengo_extras.ocl.AmlSimulator --slow

Demonstration:
aml

More details on the learning rule will be in my forthcoming PhD thesis.

@Seanny123
Copy link
Contributor

FYI, static tests are failing due to flake8 errors.

@jgosmann
Copy link
Contributor Author

It'd be nice to get this merge and a release. I am planning a tutorial on the learning rule during the summer school.

@tbekolay
Copy link
Member

I'll do this tomorrow 👍

Copy link
Member

@tbekolay tbekolay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Test runs successfully for me, so looks good! I'll add the learning rule to the learning_rules.rst file in the docs as part of the merge.

I did have a small issue with the test taking forever, but it turned out it was because of how the plt fixture works when not actually doing plotting. The iteration over fig.axes would never stop, so I changed it to explicitly iterating over a list of the three axes.

@jgosmann
Copy link
Contributor Author

The iteration over fig.axes would never stop, so I changed it to explicitly iterating over a list of the three axes.

Maybe we also should fix the fixture? (But I'm fine with explicitly iterating over the axes here to have backwards compatibility.)

@tbekolay
Copy link
Member

Maybe we also should fix the fixture? (But I'm fine with explicitly iterating over the axes here to have backwards compatibility.)

Yeah, I'll make an issue for it in Nengo.

@tbekolay
Copy link
Member

nengo/nengo#1441 made, merging!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants